package com.example.springboot_test.easyexcel.model;

import com.example.springboot_test.easyexcel.model.common.SheetRangeModel;
import lombok.Getter;

/**
 * 合并单元格信息
 *
 * @author xudongmaster
 */
@Getter
public class MergeCellModel extends SheetRangeModel {
    private MergeCellModel() {

    }

    /**
     * 生成合并列单元格信息
     *
     * @param sheetName        sheet页名称
     * @param rowIndex         行号
     * @param startColumnIndex 开始列号
     * @param endColumnIndex   结束列号
     * @return 合并列单元格信息
     */
    public static MergeCellModel createMergeColumnCellModel(String sheetName, int rowIndex, int startColumnIndex
            , int endColumnIndex) {
        return createMergeCellModel(sheetName, rowIndex, rowIndex, startColumnIndex, endColumnIndex);
    }

    /**
     * 生成合并单元格信息
     *
     * @param sheetName     sheet页名称
     * @param startRowIndex 开始行号
     * @param endRowIndex   结束行号
     * @param columnIndex   列号
     * @return 合并列单元格信息
     */
    public static MergeCellModel createMergeRowCellModel(String sheetName, int startRowIndex, int endRowIndex, int columnIndex) {
        return createMergeCellModel(sheetName, startRowIndex, endRowIndex, columnIndex, columnIndex);
    }

    /**
     * 生成合并单元格信息
     *
     * @param sheetName        sheet页名称
     * @param startRowIndex    开始行号
     * @param endRowIndex      结束行号
     * @param startColumnIndex 开始列号
     * @param endColumnIndex   结束列号
     * @return 合并列单元格信息
     */
    public static MergeCellModel createMergeCellModel(String sheetName, int startRowIndex, int endRowIndex, int startColumnIndex
            , int endColumnIndex) {
        MergeCellModel mergeCellModel = new MergeCellModel();
        //sheet页名称
        mergeCellModel.sheetName = sheetName;
        //开始行号
        mergeCellModel.startRowIndex = startRowIndex;
        //结束行号
        mergeCellModel.endRowIndex = endRowIndex;
        //开始列号
        mergeCellModel.startColumnIndex = startColumnIndex;
        //结束列号
        mergeCellModel.endColumnIndex = endColumnIndex;
        return mergeCellModel;
    }
}
